#include "../src/server.hpp"


#include<iostream>

// void HandleWrite(Connection* conn)
// {
//     int fd = channel->FD();
//     const char *data = "hello world";
//     int ret = send(fd, data, strlen(data), 0);
//     if(ret < 0)
//     {

//         // close(fd);
//         return;
//     }
//     channel->DisabelWrite();//关闭写监控！
// }

// std::unordered_map<uint64_t,PtrConnection> conns;//管理所有的链接对象！
// uint64_t conn_id = 0;
// EventLoop base_loop;
// std::vector<LoopThread> threads(2);
// int next_loop = 0;
// LoopThreadPool pools(&base_loop);
TcpServer server(8085);



// void ConnectionDestory(const PtrConnection & conn)
// {
//     conns.erase(conn->ID());
// }

// void Connected(const PtrConnection& conn)
// {
//     DBG_LOG("NEW CONNECTION! :%p",conn.get());
// }


// void OnMessage(const PtrConnection& conn,Buffer* buf)
// {
//     DBG_LOG("%s",buf->GetReadPosition());
//     buf->MoveReadOffset(buf->ReadAbleSize());
//     std::string str = "hello world";
//     conn->Send(&str[0],str.size());
// }



// void newconnection(int newfd)
// {
//     PtrConnection conn(new Connection(pools.NextLoop(),conn_id,newfd));
//     if(newfd < 0)
//     {
//         return;
//     }
//     //获取成功为新连接创建一个channel并添加进poll里面！ 
//     conn->SetConnectedCallback(Connected);
//     conn->SetMessageCallback(OnMessage);
//     // conn->SetClosedCallback(ConnectionDestory);
//     conn->SetServerClosedCallback(ConnectionDestory);


//     conn->EnableInActiveRelease(4);//启动非活跃销毁功能！
//     conn->Established();//就绪初始化

//     conns.insert({conn_id,conn});
//     conn_id++;
// }

int main()
{











    // pools.SetThreadCount(3);
    // pools.Create();
    // Acceptor acceptor(pools.NextLoop(),8085);
    // acceptor.SetAcceptCallback(std::bind(newconnection,std::placeholders::_1));
    // acceptor.Listen();

    // base_loop.Start();

    // srand(time(NULL));
    // EventLoop loop;
    // Socket lst_sock;
    // bool ret = lst_sock.CreateServer(8085);
    // //为监听套接字创建一个channel进行事件的管理和处理！
    // Channel channel(&loop,lst_sock.FD());
    // channel.SetReadCallback(std::bind(Acceptor,&loop,&channel));//回调中创建获取新连接，为新连接创建一个channel并添加监控！
    // channel.EnableRead();//启动可读事件监控！

    // while(1)
    // {
    //     loop.Start();
    // }
    // while(1)
    // {

    //     std::vector<Channel *> actives;
    //     poller.Poll(&actives);
    //     for(auto &a:actives)
    //     {
    //         a->HandleEvent();
    //     }

    // }

    // if (ret == true)
    // {
    //     DBG_LOG("SUC");

    //     while (1)
    //     {
    //         int newfd = lst_sock.Accept();
    //         sleep(1);
    //         if (newfd < 0)
    //         {
    //             continue;
    //         }
    //         Socket cli_sock(newfd);
    //         char buf[1024] = {0};
    //         int ret = cli_sock.Recv(buf, 1023);
    //         if (ret < 0)
    //         {
    //             cli_sock.Close();
    //             continue;
    //         }
    //         cli_sock.Send(buf, ret);
    //         cli_sock.Close();
    //     }
    // }
}